﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Ninject.Modules;

namespace Coslen.TahorCRM.UI.www.DependencyResolver
{
    public class RegisterServices : NinjectModule
    {
        public override void Load()
        {
            // The list of Repositories and their Interfaces
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.IAddressRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.AddressRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.IAddressTypeRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.AddressTypeRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.IAvatarRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.AvatarRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.IAvatarTypeRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.AvatarTypeRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.ICommentRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.CommentRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.ICommentTypeRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.CommentTypeRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.IContactDetailRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.ContactDetailRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.IContactDetailTypeRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.ContactDetailTypeRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.IContactEventRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.ContactEventRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.IContactEventTypeRoleRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.ContactEventTypeRoleRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.IContactEventTypeRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.ContactEventTypeRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.IContactInformationStreamRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.ContactInformationStreamRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.IContactRelationshipRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.ContactRelationshipRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.IContactRelationshipTypeRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.ContactRelationshipTypeRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.IContactRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.ContactRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.ICountryRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.CountryRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.ICountryRegionRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.CountryRegionRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.IEntityLinkRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.EntityLinkRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.IGenderRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.GenderRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.IInformationStreamRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.InformationStreamRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.IRightRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.RightRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.IRoleRightRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.RoleRightRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.IRoleRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.RoleRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.ITitleRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.TitleRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.IUserRoleRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.UserRoleRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.IUserRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.UserRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.INoteRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.NoteRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.INoteTypeRoleRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.NoteTypeRoleRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.INoteTypeRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.NoteTypeRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.IEventRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.EventRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.IEventTypeRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.EventTypeRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.IGroupContactRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.GroupContactRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.IGroupContactTypeRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.GroupContactTypeRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.IGroupEventAttendanceRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.GroupEventAttendanceRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.IGroupEventRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.GroupEventRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.IGroupRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.GroupRepository>();
            Bind<Coslen.TahorCRM.Domain.Repositories.Interfaces.IGroupTypeRepository>().To<Coslen.TahorCRM.Domain.Repositories.Concretes.GroupTypeRepository>();
            // The list of Services and their Interfaces
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.IAddressService>().To<Coslen.TahorCRM.Domain.Services.Concretes.AddressService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.IAddressTypeService>().To<Coslen.TahorCRM.Domain.Services.Concretes.AddressTypeService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.IAvatarService>().To<Coslen.TahorCRM.Domain.Services.Concretes.AvatarService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.IAvatarTypeService>().To<Coslen.TahorCRM.Domain.Services.Concretes.AvatarTypeService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.ICommentService>().To<Coslen.TahorCRM.Domain.Services.Concretes.CommentService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.ICommentTypeService>().To<Coslen.TahorCRM.Domain.Services.Concretes.CommentTypeService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.IContactDetailService>().To<Coslen.TahorCRM.Domain.Services.Concretes.ContactDetailService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.IContactDetailTypeService>().To<Coslen.TahorCRM.Domain.Services.Concretes.ContactDetailTypeService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.IContactEventService>().To<Coslen.TahorCRM.Domain.Services.Concretes.ContactEventService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.IContactEventTypeRoleService>().To<Coslen.TahorCRM.Domain.Services.Concretes.ContactEventTypeRoleService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.IContactEventTypeService>().To<Coslen.TahorCRM.Domain.Services.Concretes.ContactEventTypeService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.IContactInformationStreamService>().To<Coslen.TahorCRM.Domain.Services.Concretes.ContactInformationStreamService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.IContactRelationshipService>().To<Coslen.TahorCRM.Domain.Services.Concretes.ContactRelationshipService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.IContactRelationshipTypeService>().To<Coslen.TahorCRM.Domain.Services.Concretes.ContactRelationshipTypeService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.IContactService>().To<Coslen.TahorCRM.Domain.Services.Concretes.ContactService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.ICountryService>().To<Coslen.TahorCRM.Domain.Services.Concretes.CountryService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.ICountryRegionService>().To<Coslen.TahorCRM.Domain.Services.Concretes.CountryRegionService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.IEntityLinkService>().To<Coslen.TahorCRM.Domain.Services.Concretes.EntityLinkService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.IGenderService>().To<Coslen.TahorCRM.Domain.Services.Concretes.GenderService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.IInformationStreamService>().To<Coslen.TahorCRM.Domain.Services.Concretes.InformationStreamService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.IRightService>().To<Coslen.TahorCRM.Domain.Services.Concretes.RightService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.IRoleRightService>().To<Coslen.TahorCRM.Domain.Services.Concretes.RoleRightService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.IRoleService>().To<Coslen.TahorCRM.Domain.Services.Concretes.RoleService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.ITitleService>().To<Coslen.TahorCRM.Domain.Services.Concretes.TitleService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.IUserRoleService>().To<Coslen.TahorCRM.Domain.Services.Concretes.UserRoleService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.IUserService>().To<Coslen.TahorCRM.Domain.Services.Concretes.UserService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.INoteService>().To<Coslen.TahorCRM.Domain.Services.Concretes.NoteService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.INoteTypeRoleService>().To<Coslen.TahorCRM.Domain.Services.Concretes.NoteTypeRoleService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.INoteTypeService>().To<Coslen.TahorCRM.Domain.Services.Concretes.NoteTypeService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.IEventService>().To<Coslen.TahorCRM.Domain.Services.Concretes.EventService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.IEventTypeService>().To<Coslen.TahorCRM.Domain.Services.Concretes.EventTypeService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.IGroupContactService>().To<Coslen.TahorCRM.Domain.Services.Concretes.GroupContactService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.IGroupContactTypeService>().To<Coslen.TahorCRM.Domain.Services.Concretes.GroupContactTypeService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.IGroupEventAttendanceService>().To<Coslen.TahorCRM.Domain.Services.Concretes.GroupEventAttendanceService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.IGroupEventService>().To<Coslen.TahorCRM.Domain.Services.Concretes.GroupEventService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.IGroupService>().To<Coslen.TahorCRM.Domain.Services.Concretes.GroupService>();
            Bind<Coslen.TahorCRM.Domain.Services.Interfaces.IGroupTypeService>().To<Coslen.TahorCRM.Domain.Services.Concretes.GroupTypeService>();
        }
    }
}